home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / S / MOS / MATHLIB0.D < prev    next >
Encoding:
Modula Definition  |  1990-10-03  |  2.5 KB  |  59 lines

  1.  
  2. DEFINITION MODULE MathLib0;
  3.  
  4. (* Erweiterte Definition                      jm 15.4.86, TT 3.10.90
  5.  
  6.    Die trigonometrischen Funktionen arbeiten im Bogenmass.
  7.    Ueberlauf oder Aufruf mit illegalen Argumenten fuehren zum
  8.    Abbruch des Programms mit entsprechendem Laufzeitfehler.
  9.  
  10.    Die Funktionen 'lnP1', 'expM1' und 'sincos' sind in Hinblick auf die
  11.    Mathe-Koprozessoren aufgenommen worden. Während sie ohne Koprozessor
  12.    praktisch keinen Vorteil bieten, wird bei Einsatz einer FPU ein
  13.    Geschwindigkeitsvorteil gegenüber 'ln(x+1)', 'exp(x-1)' bzw. den
  14.    Einzelaufrufen von 'sin' und 'cos' erlangt.
  15. *)
  16.  
  17. (*$F+*)
  18.  
  19. CONST pi = 3.1415926535897932;
  20. CONST e  = 2.7182818284590452;
  21.  
  22. PROCEDURE ln       (x: LONGREAL): LONGREAL;    (* log_e  (x)   *)
  23. PROCEDURE log      (x: LONGREAL): LONGREAL;    (* log_10 (x)   *)
  24. PROCEDURE ld       (x: LONGREAL): LONGREAL;    (* log_2  (x)   *)
  25. PROCEDURE lnP1     (x: LONGREAL): LONGREAL;    (* log_e  (x+1) *)
  26. PROCEDURE exp      (x: LONGREAL): LONGREAL;    (*  e ^ x     *)
  27. PROCEDURE pwrOfTen (x: LONGREAL): LONGREAL;    (* 10 ^ x     *)
  28. PROCEDURE pwrOfTwo (x: LONGREAL): LONGREAL;    (*  2 ^ x     *)
  29. PROCEDURE expM1    (x: LONGREAL): LONGREAL;    (*  e ^ (x-1) *)
  30.  
  31. PROCEDURE logar    (b, x: LONGREAL): LONGREAL; (* Logarithmus zur Basis b *)
  32. PROCEDURE power    (b, x: LONGREAL): LONGREAL; (* b ^ x *)
  33.  
  34. PROCEDURE sin      (x: LONGREAL): LONGREAL;    (* trigonometr. Funktionen, *)
  35. PROCEDURE cos      (x: LONGREAL): LONGREAL;    (* Argumente im Bogenmass   *)
  36. PROCEDURE tan      (x: LONGREAL): LONGREAL;
  37. PROCEDURE arcsin   (x: LONGREAL): LONGREAL;
  38. PROCEDURE arccos   (x: LONGREAL): LONGREAL;
  39. PROCEDURE arctan   (x: LONGREAL): LONGREAL;
  40. PROCEDURE sincos   (x: LONGREAL; VAR sin, cos: LONGREAL); (* beide zugleich *)
  41.  
  42. PROCEDURE sinh     (x: LONGREAL): LONGREAL;    (* hyberbolische Funktionen *)
  43. PROCEDURE cosh     (x: LONGREAL): LONGREAL;
  44. PROCEDURE tanh     (x: LONGREAL): LONGREAL;
  45. PROCEDURE artanh   (x: LONGREAL): LONGREAL;
  46.  
  47. PROCEDURE sqrt     (x: LONGREAL): LONGREAL;    (* Wurzel = x ^ (1/2)       *)
  48.  
  49. PROCEDURE fraction (x: LONGREAL): LONGREAL;    (* Nachkomma-Anteil von x   *)
  50. PROCEDURE int      (x: LONGREAL): LONGREAL;    (* Vorkomma-Anteil von x   *)
  51.  
  52. PROCEDURE rad      (x: LONGREAL): LONGREAL;    (* x * pi/180 *)
  53. PROCEDURE deg      (x: LONGREAL): LONGREAL;    (* x * 180/pi *)
  54.  
  55. PROCEDURE real     (x: LONGINT): LONGREAL; (* Umwandlung LONGINT <> LONGREAL  *)
  56. PROCEDURE entier   (x: LONGREAL): LONGINT; (* besser: Verwende INT bzw. FLOAT *)
  57.  
  58. END MathLib0.
  59.